// 给定 s 和 t 两个字符串，当它们分别被输入到空白的文本编辑器后，如果两者相等，返回 true 。# 代表退格字符。

// 注意：如果对空文本输入退格字符，文本继续为空。

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var backspaceCompare = function (s, t) {
    // return build(s) === build(t);
    let i = s.length - 1, j = t.length - 1, skipS = 0, skipT = 0;

    while (i >= 0 || j >= 0) {
        // s
        while (i >= 0) {
            if (s[i] === '#') {
                skipS++; i--;
            } else if (skipS > 0) {
                i--;
                skipS--;
            } else break;
        }

        // t
        while (j >= 0) {
            if (t[j] === '#') {
                skipT++; j--;
            } else if (skipT > 0) {
                skipT--;
                j--;
            } else break;
        }

        if (s[i] !== t[j]) return false;
        i--; j--;
    }

    return true;
};
/**
 * 
 * @param {string} str 
 */
var build = function (str) {
    //通过栈的方式进行重构
    const strArr = [];
    for (let item of str) {
        if (item === '#') {
            strArr.length && strArr.pop();
        } else {
            strArr.push(item)
        }
    }
    // console.log(strArr.join())
    return strArr.join('')
}

module.exports = backspaceCompare;